// 定义函数指针类型
typedef void (*ButtonHandler)(void);

// 表结构
typedef struct {
    char button;          // 按钮
    ButtonHandler handler; // 操作函数
} ButtonCommand;

// 命令表
ButtonCommand commands[] = {
    {'A', light_on},    // 按钮A：开灯
    {'B', light_off},   // 按钮B：关灯
    {'C', light_blink}, // 按钮C：闪烁
    // 加新功能？在这加一行就行！
};


void process_button(char button) {
    int size = sizeof(commands) / sizeof(ButtonCommand);
    for (int i = 0; i < size; i++) {
        if (commands[i].button == button) {
            commands[i].handler(); // 找到就干活
            return;
        }
    }
    handle_error(); // 没找到就报错
}